package com.csun.cmny.provider.service;

import com.csun.cmny.core.support.IService;
import com.csun.cmny.provider.model.domain.DmcRfidReaderLocation;
import com.csun.cmny.provider.model.dto.propertyManagement.SelectDeviceDataDto;
import com.csun.cmny.provider.model.dto.rfid.BindDmcRfidReaderDto;
import com.csun.cmny.provider.model.dto.rfid.RfidReaderPageQuery;
import com.csun.cmny.provider.model.vo.propertyManagement.PropertyDataVo;
import com.csun.cmny.provider.model.vo.rfid.DmcRfidReaderVo;
import com.github.pagehelper.PageInfo;

import java.util.List;

/**
 * @Auther: chisj chisj@foxmal.com
 * @Date: 2019-01-21 17:11
 * @Description: the interface dmc rfid reader location service
 */
public interface DmcRfidReaderLocationService extends IService<DmcRfidReaderLocation> {

    /**
     * bind dmc rfid reader
     *
     * @param bindDmcRfidReaderDto  bind dmc rfid reader dto
     *
     * @return  the int
     */
    Integer bindDmcRfidReader(BindDmcRfidReaderDto bindDmcRfidReaderDto);

    /**
     * break dmc rfid reader
     *
     * @param deviceId  device id
     *
     * @return  the int
     */
    Integer breakDmcRfidReader(Long deviceId);

    /**
     * query rfid reader list with page
     *
     * @param rfidReaderPageQuery   rfid reader page query
     *
     * @return  the page info
     */
    PageInfo queryRfidReaderListWithPage(RfidReaderPageQuery rfidReaderPageQuery);

    /**
     * select rfid reader by rfid reader id
     *
     * @param deviceId  the device id
     *
     * @return  the dmc rfid reader vo
     */
    DmcRfidReaderVo selectByRfidReaderId(Long deviceId);

    /**
     * select rfid reader by rfid reader no
     *
     * @param readerNo  the rfid reader no
     *
     * @return  the dmc rfid reader vo
     */
    DmcRfidReaderVo selectByRfidReaderNo(String readerNo);

    List<PropertyDataVo> selectDeviceData(SelectDeviceDataDto selectDeviceDataDto);
}
